fibonacci :: (Num e, Ord e) => e -> [e]
fibonacci qtd 
        | qtd <= 0  = []
        | qtd == 1  = [0]
        | qtd == 2  = [0,1]
        | otherwise = 
                let xs = fibonacci (qtd - 1) 
                in  xs ++ [ sum( take 2 ( reverse (xs) ) ) ]